package kiwi.assist.dev.guieditor.model {
	import kiwi.assist.dev.guieditor.model.format.IValueFormat;
	import kiwi.debug.Log;

	/**
	 * 属性配置
	 * 主要是用来描述属性的具体格式以及默认值等等这些信息
	 * @author zhangming.luo
	 */
	public class PropertyConfig {
		public var key : String;
		public var format : IValueFormat;
		public var value : *;
		public var defaultValue : *;
		/**
		 * 只读
		 */
		public var readOnly : Boolean = false;
		/**
		 * 不发布的属性
		 */
		public var nopublish : Boolean = false;
		[TypeHint(type="kiwi.assist.dev.guieditor.model.EnumConfig")]
		/**
		 * 枚举所有的值
		 */
		public var enumList : Array = [];

		public function toString() : String {
			if (enumList.length > 0) {
				for each (var enum:EnumConfig in enumList) {
					if (enum == value || enum.value == value) {
						return enum.name;
					}
				}
				Log.warn("值不在枚举中");
			}
			try {
				return format.transValueToString(value);
			} catch(e : Error) {
				Log.warn("获取值错误" + value + " => " + format);
			}
			return "";
		}
	}
}
